install.packages("pacman")
Error in install.packages : Updating loaded packages
library(pacman)

Installing Packages

pacman::p_load(arules, arulesViz, ggplot2, colorspace)

Loading packages

dataset <- read.transactions("./AssociationRules.csv", sep=" ")

Read from csv file transactions of list items

str(dataset)
Formal class 'transactions' [package "arules"] with 3 slots
  ..@ data       :Formal class 'ngCMatrix' [package "Matrix"] with 5 slots
  .. .. ..@ i       : int [1:98063] 5 20 22 30 34 44 53 5 22 23 ...
  .. .. ..@ p       : int [1:10001] 0 7 19 26 40 48 62 75 86 93 ...
  .. .. ..@ Dim     : int [1:2] 98 10000
  .. .. ..@ Dimnames:List of 2
  .. .. .. ..$ : NULL
  .. .. .. ..$ : NULL
  .. .. ..@ factors : list()
  ..@ itemInfo   :'data.frame': 98 obs. of  1 variable:
  .. ..$ labels: chr [1:98] "item1" "item10" "item100" "item11" ...
  ..@ itemsetInfo:'data.frame': 0 obs. of  0 variables

Show structure

summary(size(dataset))
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  1.000   7.000  10.000   9.806  12.000  25.000 
itemFrequencyPlot(dataset, topN = 10) 

Show plot of items

set.seed = 220
associa_rules = apriori(data=dataset,  
                        parameter=list(support=0.01,  
                                         confidence=0)) 
summary(associa_rules)
set of 11524 rules

rule length distribution (lhs + rhs):sizes
   1    2    3    4    5 
  89 2952 7206 1272    5 

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1.00    2.00    3.00    2.84    3.00    5.00 

summary of quality measures:
    support          confidence        coverage            lift             count       
 Min.   :0.01000   Min.   :0.0108   Min.   :0.01000   Min.   : 0.6717   Min.   : 100.0  
 1st Qu.:0.01150   1st Qu.:0.1683   1st Qu.:0.03940   1st Qu.: 1.0076   1st Qu.: 115.0  
 Median :0.01400   Median :0.2490   Median :0.06330   Median : 1.1244   Median : 140.0  
 Mean   :0.01891   Mean   :0.2788   Mean   :0.09342   Mean   : 1.2284   Mean   : 189.1  
 3rd Qu.:0.01990   3rd Qu.:0.3596   3rd Qu.:0.11040   3rd Qu.: 1.2803   3rd Qu.: 199.0  
 Max.   :0.49480   Max.   :1.0000   Max.   :1.00000   Max.   :19.4205   Max.   :4948.0  

mining info:
trustly_subset <- subset(associa_rules, confidence >= 0.5)

summary(trustly_subset)
set of 1165 rules

rule length distribution (lhs + rhs):sizes
  2   3   4   5 
 62 753 348   2 

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  2.000   3.000   3.000   3.249   4.000   5.000 

summary of quality measures:
    support          confidence        coverage           lift            count       
 Min.   :0.01000   Min.   :0.5000   Min.   :0.0100   Min.   : 1.011   Min.   : 100.0  
 1st Qu.:0.01110   1st Qu.:0.5283   1st Qu.:0.0193   1st Qu.: 1.093   1st Qu.: 111.0  
 Median :0.01350   Median :0.5644   Median :0.0237   Median : 1.192   Median : 135.0  
 Mean   :0.01816   Mean   :0.5863   Mean   :0.0321   Mean   : 1.589   Mean   : 181.6  
 3rd Qu.:0.01920   3rd Qu.:0.6143   3rd Qu.:0.0338   3rd Qu.: 1.424   3rd Qu.: 192.0  
 Max.   :0.18770   Max.   :1.0000   Max.   :0.3699   Max.   :19.420   Max.   :1877.0  

mining info:
trustly_subset <- subset(associa_rules, confidence > 0.5)
# Some 10 sample
sample_top_rules <- sample(associa_rules, 10)
# High confidence rules
rules_conf <- sort(associa_rules, by="confidence", decreasing=TRUE)
# High lift rules
rules_lift <- sort(associa_rules, by="lift", decreasing=TRUE)
# Top 10 rules by confidence
top_rules_conf <- head(rules_conf, n=10)
# Top 10 rules by lift
top_rules_lift = head(rules_lift, n=10)
plot(associa_rules, 
     method="scatterplot", 
     measure=c("support", "confidence"), 
     shading="lift"
)

plot(associa_rules, 
     method="scatterplot", 
     measure=c("support", "lift"), 
     shading="confidence"
)

Scatter plot of all rules

plot(associa_rules, 
     method="scatterplot", 
     measure=c("support", "confidence"), 
     shading="lift",
     engine="htmlwidget"
)
plot: Too many rules supplied. Only plotting the best 1000 rules using measure lift (change parameter max if needed)To reduce overplotting, jitter is added! Use jitter = 0 to prevent jitter.
`arrange_()` is deprecated as of dplyr 0.7.0.
Please use `arrange()` instead.
See vignette('programming') for more help
This warning is displayed once every 8 hours.
Call `lifecycle::last_warnings()` to see where this warning was generated.
plot(associa_rules, 
     method="scatterplot", 
     measure=c("support", "lift"), 
     shading="confidence",
     engine="htmlwidget"
)
plot: Too many rules supplied. Only plotting the best 1000 rules using measure confidence (change parameter max if needed)To reduce overplotting, jitter is added! Use jitter = 0 to prevent jitter.
plot(top_rules_conf, method="paracoord")

plot(top_rules_lift, method="paracoord")

plot(top_rules_conf, method="matrix", measure="confidence")
Itemsets in Antecedent (LHS)
[1] "{item15,item30,item49}" "{item30,item49,item56}" "{item49,item56}"        "{item15,item49,item56}" "{item49,item56,item84}" "{item15,item49,item84}"
[7] "{item15,item56,item77}"
Itemsets in Consequent (RHS)
[1] "{item30}" "{item84}" "{item15}" "{item56}"

Matrix based plot

plot(top_rules_lift, method="matrix", measure="lift")
Itemsets in Antecedent (LHS)
 [1] "{item15,item30,item56}" "{item30,item56,item84}" "{item15,item30,item49}" "{item15,item56}"        "{item15,item49}"        "{item30,item49,item84}"
 [7] "{item56,item84}"        "{item15,item30,item84}" "{item15,item30,item77}" "{item30,item77,item84}"
Itemsets in Consequent (RHS)
[1] "{item56}" "{item49}"

plot(top_rules_lift, method="grouped")

plot(top_rules_conf, method="graph",  engine="htmlwidget")
top_3_lift = head(top_rules_lift, n=3)

plot(top_3_lift, method="graph")

hight_trustly_rules <- subset(associa_rules, confidence > 0.8)

first_38_conf = head(sort(hight_trustly_rules, by="confidence", decreasing=TRUE), n=38)

plot(first_38_conf, 
     method="matrix", 
     shading=c("lift", "confidence"), 
     measure=c("lift", "confidence"), 
     control=list(reorder=FALSE)
)
Itemsets in Antecedent (LHS)
 [1] "{item15,item49,item56}" "{item49,item56,item84}" "{item49,item56}"        "{item15,item49,item84}" "{item30,item49,item56}" "{item15,item30,item49}"
 [7] "{item15,item56,item77}" "{item15,item56,item84}" "{item49,item77,item84}" "{item16,item61,item77}" "{item20,item23}"        "{item16,item34,item77}"
[13] "{item15,item49}"        "{item5,item82,item99}"  "{item3,item84,item95}"  "{item13,item82,item99}" "{item23}"               "{item25,item34,item77}"
[19] "{item82,item99}"        "{item22,item3,item41}"  "{item55}"               "{item10,item44}"        "{item83}"               "{item23,item5}"        
[25] "{item30,item56,item77}" "{item15,item30,item56}" "{item10,item22,item41}" "{item30,item49,item84}" "{item20,item25,item41}" "{item16,item25,item77}"
[31] "{item30,item95,item96}"
Itemsets in Consequent (RHS)
 [1] "{item30}" "{item15}" "{item56}" "{item84}" "{item5}"  "{item13}" "{item10}" "{item34}" "{item3}"  "{item77}" "{item92}"

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9Cmluc3RhbGwucGFja2FnZXMoInBhY21hbiIpCmBgYApJbnN0YWxsaW5nIFBhY2thZ2VzIAoKYGBge3J9CnBhY21hbjo6cF9sb2FkKGFydWxlcywgYXJ1bGVzVml6LCBnZ3Bsb3QyKQpgYGAKTG9hZGluZyBwYWNrYWdlcwoKYGBge3J9CmRhdGFzZXQgPC0gcmVhZC50cmFuc2FjdGlvbnMoIi4vQXNzb2NpYXRpb25SdWxlcy5jc3YiLCBzZXA9IiAiKQpgYGAKUmVhZCBmcm9tIGNzdiBmaWxlIHRyYW5zYWN0aW9ucyBvZiBsaXN0IGl0ZW1zCgpgYGB7cn0Kc3RyKGRhdGFzZXQpCmBgYApTaG93IHN0cnVjdHVyZQpgYGB7cn0Kc3VtbWFyeShzaXplKGRhdGFzZXQpKQpgYGAKCmBgYHtyfQppdGVtRnJlcXVlbmN5UGxvdChkYXRhc2V0LCB0b3BOPTEwKSAKYGBgClNob3cgcGxvdCBvZiBpdGVtcwoKYGBge3J9CnNldC5zZWVkID0gMjIwCmBgYAoKYGBge3J9CmFzc29jaWFfcnVsZXMgPSBhcHJpb3JpKGRhdGE9ZGF0YXNldCwgIAogICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXI9bGlzdChzdXBwb3J0PTAuMDEsICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWRlbmNlPTApKSAKYGBgCgpgYGB7cn0Kc3VtbWFyeShhc3NvY2lhX3J1bGVzKQpgYGAKYGBge3J9CnRydXN0bHlfc3Vic2V0IDwtIHN1YnNldChhc3NvY2lhX3J1bGVzLCBjb25maWRlbmNlID49IDAuNSkKCnN1bW1hcnkodHJ1c3RseV9zdWJzZXQpCmBgYAoKCmBgYHtyfQojIFNvbWUgMTAgc2FtcGxlCnNhbXBsZV90b3BfcnVsZXMgPC0gc2FtcGxlKGFzc29jaWFfcnVsZXMsIDEwKQojIEhpZ2ggY29uZmlkZW5jZSBydWxlcwpydWxlc19jb25mIDwtIHNvcnQoYXNzb2NpYV9ydWxlcywgYnk9ImNvbmZpZGVuY2UiLCBkZWNyZWFzaW5nPVRSVUUpCiMgSGlnaCBsaWZ0IHJ1bGVzCnJ1bGVzX2xpZnQgPC0gc29ydChhc3NvY2lhX3J1bGVzLCBieT0ibGlmdCIsIGRlY3JlYXNpbmc9VFJVRSkKIyBUb3AgMTAgcnVsZXMgYnkgY29uZmlkZW5jZQp0b3BfcnVsZXNfY29uZiA8LSBoZWFkKHJ1bGVzX2NvbmYsIG49MTApCiMgVG9wIDEwIHJ1bGVzIGJ5IGxpZnQKdG9wX3J1bGVzX2xpZnQgPSBoZWFkKHJ1bGVzX2xpZnQsIG49MTApCmBgYAoKCmBgYHtyfQpwbG90KGFzc29jaWFfcnVsZXMsIAogICAgIG1ldGhvZD0ic2NhdHRlcnBsb3QiLCAKICAgICBtZWFzdXJlPWMoInN1cHBvcnQiLCAiY29uZmlkZW5jZSIpLCAKICAgICBzaGFkaW5nPSJsaWZ0IgopCmBgYApgYGB7cn0KcGxvdChhc3NvY2lhX3J1bGVzLCAKICAgICBtZXRob2Q9InNjYXR0ZXJwbG90IiwgCiAgICAgbWVhc3VyZT1jKCJzdXBwb3J0IiwgImxpZnQiKSwgCiAgICAgc2hhZGluZz0iY29uZmlkZW5jZSIKKQpgYGAKU2NhdHRlciBwbG90IG9mIGFsbCBydWxlcwoKCmBgYHtyfQpwbG90KGFzc29jaWFfcnVsZXMsIAogICAgIG1ldGhvZD0ic2NhdHRlcnBsb3QiLCAKICAgICBtZWFzdXJlPWMoInN1cHBvcnQiLCAiY29uZmlkZW5jZSIpLCAKICAgICBzaGFkaW5nPSJsaWZ0IiwKICAgICBlbmdpbmU9Imh0bWx3aWRnZXQiCikKYGBgCmBgYHtyfQpwbG90KGFzc29jaWFfcnVsZXMsIAogICAgIG1ldGhvZD0ic2NhdHRlcnBsb3QiLCAKICAgICBtZWFzdXJlPWMoInN1cHBvcnQiLCAibGlmdCIpLCAKICAgICBzaGFkaW5nPSJjb25maWRlbmNlIiwKICAgICBlbmdpbmU9Imh0bWx3aWRnZXQiCikKYGBgCgpgYGB7cn0KcGxvdCh0b3BfcnVsZXNfY29uZiwgbWV0aG9kPSJwYXJhY29vcmQiKQpgYGAKCmBgYHtyfQpwbG90KHRvcF9ydWxlc19saWZ0LCBtZXRob2Q9InBhcmFjb29yZCIpCmBgYAoKYGBge3J9CnBsb3QodG9wX3J1bGVzX2NvbmYsIG1ldGhvZD0ibWF0cml4IiwgbWVhc3VyZT0iY29uZmlkZW5jZSIpCmBgYApNYXRyaXggYmFzZWQgcGxvdAoKYGBge3J9CnBsb3QodG9wX3J1bGVzX2xpZnQsIG1ldGhvZD0ibWF0cml4IiwgbWVhc3VyZT0ibGlmdCIpCmBgYAoKYGBge3J9CnBsb3QodG9wX3J1bGVzX2xpZnQsIG1ldGhvZD0iZ3JvdXBlZCIpCmBgYAoKYGBge3J9CnBsb3QodG9wX3J1bGVzX2NvbmYsIG1ldGhvZD0iZ3JhcGgiLCAgZW5naW5lPSJodG1sd2lkZ2V0IikKYGBgCmBgYHtyfQp0b3BfM19saWZ0ID0gaGVhZCh0b3BfcnVsZXNfbGlmdCwgbj0zKQoKcGxvdCh0b3BfM19saWZ0LCBtZXRob2Q9ImdyYXBoIikKYGBgCgpgYGB7cn0KaGlnaHRfdHJ1c3RseV9ydWxlcyA8LSBzdWJzZXQoYXNzb2NpYV9ydWxlcywgY29uZmlkZW5jZSA+IDAuOCkKCmZpcnN0XzM4X2NvbmYgPSBoZWFkKHNvcnQoaGlnaHRfdHJ1c3RseV9ydWxlcywgYnk9ImNvbmZpZGVuY2UiLCBkZWNyZWFzaW5nPVRSVUUpLCBuPTM4KQoKcGxvdChmaXJzdF8zOF9jb25mLCAKICAgICBtZXRob2Q9Im1hdHJpeCIsIAogICAgIHNoYWRpbmc9YygibGlmdCIsICJjb25maWRlbmNlIiksIAogICAgIG1lYXN1cmU9YygibGlmdCIsICJjb25maWRlbmNlIiksIAogICAgIGNvbnRyb2w9bGlzdChyZW9yZGVyPUZBTFNFKQopCmBgYAoKCgoKCgoK